]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
lightbox: Use common ease parameters and avoid similar codepaths
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Wed, 31 Jul 2019 12:10:31 +0000 (14:10 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Mon, 9 Sep 2019 19:28:18 +0000 (19:28 +0000)
Easing calls on show/hide functions have some parameters in common whether the
radial effect is enabled or not.

So instead of doing repeated calls with similar parameters, initialize common
values in params objects.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700

js/ui/lightbox.js

index fbbc011681ebc671ec11ad992c970fcde9788868..563bd637a2e7dde726baa91136c8ddb7be175f7a 100644 (file)
@@ -172,10 +172,13 @@ var Lightbox = class Lightbox {
     }
 
     show(fadeInTime) {
-        fadeInTime = fadeInTime || 0;
-
         this.actor.remove_all_transitions();
 
+        let easeProps = {
+            duration: fadeInTime || 0,
+            mode: Clutter.AnimationMode.EASE_OUT_QUAD
+        };
+
         let onComplete = () => {
             this.shown = true;
             this.emit('shown');
@@ -183,55 +186,38 @@ var Lightbox = class Lightbox {
 
         if (this._radialEffect) {
             this.actor.ease_property(
-                '@effects.radial.brightness', VIGNETTE_BRIGHTNESS, {
-                    duration: fadeInTime,
-                    mode: Clutter.AnimationMode.EASE_OUT_QUAD
-                });
+                '@effects.radial.brightness', VIGNETTE_BRIGHTNESS, easeProps);
             this.actor.ease_property(
-                '@effects.radial.sharpness', VIGNETTE_SHARPNESS, {
-                    duration: fadeInTime,
-                    mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-                    onComplete
-                });
+                '@effects.radial.sharpness', VIGNETTE_SHARPNESS,
+                Object.assign({ onComplete }, easeProps));
         } else {
-            this.actor.ease({
+            this.actor.ease(Object.assign(easeProps, {
                 opacity: 255 * this._fadeFactor,
-                duration: fadeInTime,
-                mode: Clutter.AnimationMode.EASE_OUT_QUAD,
                 onComplete
-            });
+            }));
         }
 
         this.actor.show();
     }
 
     hide(fadeOutTime) {
-        fadeOutTime = fadeOutTime || 0;
-
         this.shown = false;
         this.actor.remove_all_transitions();
 
+        let easeProps = {
+            duration: fadeOutTime || 0,
+            mode: Clutter.AnimationMode.EASE_OUT_QUAD
+        };
+
         let onComplete = () => this.actor.hide();
 
         if (this._radialEffect) {
             this.actor.ease_property(
-                '@effects.radial.brightness', 1.0, {
-                    duration: fadeOutTime,
-                    mode: Clutter.AnimationMode.EASE_OUT_QUAD
-                });
+                '@effects.radial.brightness', 1.0, easeProps);
             this.actor.ease_property(
-                '@effects.radial.sharpness', 0.0, {
-                    duration: fadeOutTime,
-                    mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-                    onComplete
-                });
+                '@effects.radial.sharpness', 0.0, Object.assign({ onComplete }, easeProps));
         } else {
-            this.actor.ease({
-                opacity: 0,
-                duration: fadeOutTime,
-                mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-                onComplete
-            });
+            this.actor.ease(Object.assign(easeProps, { opacity: 0, onComplete }));
         }
     }